<template>
  <div>
    <button @click="fn">按钮</button>
    <ul>
      <li v-for="item in arr" :key="item.id">
        <input type="checkbox" />
        <input type="text" />
        {{ item.name }}
      </li>
    </ul>

    <hr />

    <button @click="flag = !flag">按钮</button>
    <input type="text" v-if="flag" placeholder="用户名" key="1" />
    <input type="text" v-else placeholder="邮箱" key="2" />
  </div>
</template>

<script>
// 如果没有key或key是索引值,标签名一样就会就地复用,如果有key并且key是唯一的id值,就不会出问题
// 有id用id无id用索引
// 这个默认的模式是高效的，但是只适用于不依赖子组件状态或临时 DOM 状态 (例如：表单输入值) 的列表渲染输出。
//key只和v-for有关系 它还和v-if
export default {
  data() {
    return {
      arr: [
        { id: 1, name: "孙悟空" },
        { id: 2, name: "奥特曼" },
        { id: 3, name: "周杰伦" },
      ],
      flag: true,
    };
  },
  methods: {
    fn() {
      this.arr.splice(1, 0, { id: 4, name: "赵云" });
    },
  },
};
</script>

<style scoped></style>
